home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 16 / CU Amiga Magazine's Super CD-ROM 16 (1997-10-16)(EMAP Images)(GB)[!][issue 1997-11].iso / CUCD / Graphics / Ghostscript / source / ps2epsi < prev    next >
Text File  |  1995-07-27  |  2KB  |  83 lines

  1. #!/bin/sh
  2.  
  3. tmpfile=/tmp/ps2epsi$$
  4.  
  5. export outfile
  6.  
  7. if [ $# -lt 1 -o $# -gt 2 ]; then
  8.     echo "Usage: `basename $0` file.ps [file.epsi]" 1>&2
  9.     exit 1
  10. fi
  11.  
  12. infile=$1;
  13.  
  14. if [ $# -eq 1 ]
  15. then
  16.     case "${infile}" in
  17.       *.ps)        base=`basename ${infile} .ps` ;;
  18.       *.cps)    base=`basename ${infile} .cps` ;;
  19.       *.eps)    base=`basename ${infile} .eps` ;;
  20.       *.epsf)    base=`basename ${infile} .epsf` ;;
  21.       *)        base=`basename ${infile}` ;;
  22.     esac
  23.     outfile=${base}.epsi
  24. else
  25.     outfile=$2
  26. fi
  27.  
  28. ls -l ${infile} |
  29. awk 'F==1    {
  30.         cd="%%CreationDate: " $6 " " $7 " " $8;
  31.         t="%%Title: " $9;
  32.         f="%%For:" U " " $3;
  33.         c="%%Creator: Ghostscript ps2epsi from " $9;
  34.         next;
  35.         }
  36.     /^%!/    {next;}
  37.     /^%%Title:/    {t=$0; next;}
  38.     /^%%Creator:/    {c=$0; next;}
  39.     /^%%CreationDate:/    {cd=$0; next;}
  40.     /^%%For:/    {f=$0; next;}
  41.     !/^%/    {
  42.         print "/ps2edict 30 dict def";
  43.         print "ps2edict begin";
  44.         print "/epsititle (" t "\\n) def";
  45.         print "/epsicreator (" c "\\n) def";
  46.         print "/epsicrdt (" cd "\\n) def";
  47.         print "/epsifor (" f "\\n) def";
  48.         print "end";
  49.         exit(0);
  50.         }
  51.     ' U="$USERNAME$LOGNAME"  F=1 - F=2 ${infile} >$tmpfile
  52.  
  53. gs -q -dNOPAUSE -r72 -sDEVICE=bit -sOutputFile=/dev/null $tmpfile ps2epsi.ps $tmpfile <${infile} 1>&2
  54. rm -f $tmpfile
  55.  
  56. (
  57. cat << BEGINEPS
  58. save
  59. countdictstack
  60. mark
  61. newpath
  62. /showpage {} def
  63. %%EndProlog
  64. %%Page 1 1
  65. BEGINEPS
  66.  
  67. cat ${infile} |
  68. tr -d '\015' |
  69. sed -e '/^%%BeginPreview:/,/%%EndPreview$/d' -e '/^%!PS-Adobe/d'\
  70.     -e '/^%%[A-Za-z][A-Za-z]*$/d' -e '/^%%[A-Za-z][A-Za-z]*: /d'
  71.  
  72. cat << ENDEPS
  73. %%Trailer
  74. cleartomark
  75. countdictstack exch sub { end } repeat
  76. restore
  77. %%EOF
  78. ENDEPS
  79.  
  80. ) >> ${outfile}
  81.  
  82. exit 0
  83.